import csv
from textblob import TextBlob

# Ruta del archivo CSV
csv_file_path = "C:\\Users\\PC\\Documents\\Python\\rehoboth_beach.csv"

# Crear una lista para almacenar los resultados del análisis de sentimientos
sentiment_results = []

# Etiquetas para los diferentes rangos de polaridad
sentiment_labels = {
    'muy positivo': (0.6, 1.0),
    'positivo': (0.2, 0.6),
    'neutral': (-0.2, 0.2),
    'negativo': (-0.6, -0.2),
    'muy negativo': (-1.0, -0.6)
}

# Función para asignar la etiqueta correspondiente a la polaridad
def assign_label(polarity):
    for label, (lower, upper) in sentiment_labels.items():
        if lower <= polarity < upper:
            return label
    return 'unknown'

# Abrir el archivo CSV con el conjunto de caracteres "latin-1"
with open(csv_file_path, "r", encoding="latin-1") as file:
    reader = csv.DictReader(file)
    for row in reader:
        review_text = row['Review Text']
        
        # Realizar el análisis de sentimientos con TextBlob
        blob = TextBlob(review_text)
        sentiment = blob.sentiment.polarity
        
        # Asignar la etiqueta correspondiente a la polaridad
        sentiment_label = assign_label(sentiment)
        
        # Agregar el resultado del análisis de sentimientos a la lista
        sentiment_results.append([review_text, sentiment_label])

# Ruta del archivo CSV de resultados
results_csv_file_path = "Rehoboth_Beach_S

# Guardar los resultados del análisis de sentimientos en un archivo CSV
with open(results_csv_file_path, "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerow(["Review Text", "Sentiment"])
    writer.writerows(sentiment_results)

print("El análisis de sentimientos se ha completado. Los resultados se han guardado en 'Rehoboth_beach_S.csv'.")

